/*
 * ========================================================
 * Copyright(c) 2014 杭州龙骞科技-版权所有
 * ========================================================
 * 本软件由杭州龙骞科技所有, 未经书面许可, 任何单位和个人不得以
 * 任何形式复制代码的部分或全部, 并以任何形式传播。
 * 公司网址
 * http://www.hzdracom.com/
 * ========================================================
 */
package com.shwread.httpsdk.http.face;

import android.content.Context;
import android.text.TextUtils;

import com.shwread.httpsdk.constant.ResultCode;
import com.shwread.httpsdk.http.base.AbstractHttpPostDracom;
import com.shwread.httpsdk.http.callback.ActionListener;

import org.json.JSONObject;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.HashMap;

import logic.constants.AppConfig;
import logic.constants.Const;


/**
 * 添加最近阅读书籍
 * @author 刘宾  
 * @date 2014年11月11日 上午10:13:36
 */
public class AddReadBookAction
        extends
        AbstractHttpPostDracom
{
	private long contentId;//	内容id（如书籍Id）
	private int isOnline;//	是否在线
	private long startTime;//	阅读开始时间
	private long endTime;//	阅读结束时间
	private String fromType;//	书籍来源(1消息 2书架 3书城 4专题 5搜索)
	private Long chapterId;//	章节ID/音频ID
	private String chapterName;//	章节名称/音频名称

	
	/**
	 * 添加最近阅读书籍
	 * @param context 
	 * @param contentId 内容id（如书籍Id）
	 * @param isOnline 是否在线
	 * @param startTime 阅读开始时间
	 * @param endTime 阅读结束时间
	 * @param fromType 书籍来源(1消息 2书架 3书城 4专题 5搜索)
	 * @param chapterId <选填>章节ID/音频ID
	 * @param chapterName <选填>章节名称/音频名称
	 * @param actionListener
	 */
	public AddReadBookAction(Context context,long contentId,int isOnline,long startTime,long endTime,String fromType,Long chapterId,String chapterName, ActionListener actionListener) {
		super(context, "addReadBook.do", actionListener);
		this.contentId = contentId;
		this.isOnline = isOnline;
		this.startTime = startTime;
		this.endTime = endTime;
		this.fromType = fromType;
		if(null != chapterId) this.chapterId = chapterId;
		if(null != chapterName) this.chapterName = chapterName;
	}
	
	@Override
	public void getParameter(HashMap<String, String> parameter_map) {
		parameter_map.put("account", Const.phone_number);
		parameter_map.put("timeStamp", String.valueOf(timeStamp));
		
		parameter_map.put("enterpriseId", AppConfig.getEnterpriseId());
		parameter_map.put("contentId", String.valueOf(contentId));
		parameter_map.put("isOnline", String.valueOf(isOnline));
		parameter_map.put("startTime", String.valueOf(startTime));
		parameter_map.put("endTime", String.valueOf(endTime));
		parameter_map.put("fromType", fromType);
		if(null != chapterId){
			parameter_map.put("chapterId", String.valueOf(chapterId));
		}
		if(!TextUtils.isEmpty(chapterName)){
			try
            {
	            parameter_map.put("chapterName", URLEncoder.encode(chapterName, "utf-8"));
            }
            catch (UnsupportedEncodingException e)
            {
            	parameter_map.put("chapterName", "--");
	            e.printStackTrace();
            }
		}
		parameter_map.put("cid", cid(Const.phone_number + Const.ACCOUNTTYPE + Const.CLIENTTYPE + timeStamp + AppConfig.getEnterpriseId() + contentId+isOnline+startTime+endTime+fromType));
	}
	
	@Override
	public void doResponseXml(String xml) {
		println("AddReadBookAction --> "+xml);
		int result = -1;
		try
		{
			JSONObject jsonObject = new JSONObject(xml);
			result = jsonObject.getInt("resultCode");
			if (result == 1000)
			{
				listener.OK(true);
			}
			else
			{
				listener.ERROR(result, ResultCode.getResultText(result));
			}
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
	
	@Override
	protected void doRequestHeader(HashMap<String, String> header_map) {
		
	}
	
	@Override
	public void dispose() {
		
	}
	
}
